<?php

namespace App\Traits;

trait ApiResponsable
{
    protected $debug;
    /**
     * 成功时返回响应
     */
    protected function success($data = null)
    {
        return $this->send(200, null, $data);
    }

    /**
     * 发生一般请求错误时执行
     * 返回错误信息
     */
    protected function error($msg, $ret = 500, $data = null)
    {
        return $this->send($ret, $msg, $data);
    }

    /**
     * 发送响应
     */
    protected function send($ret, $msg, $data)
    {
        $json = [
            'ret' => $ret
        ];
        if ($msg !== null) {
            $json['msg'] = $msg;
        }
        if ($data !== null) {
            $json['data'] = $data;
        }
        if (env('APP_DEBUG', config('app.debug', false))) {
            $json['debug'] = $this->debug;
        }
        return response()->json($json, $ret);
    }
}
